/*============================================================================

The Medical Imaging Interaction Toolkit (MITK)

Copyright (c) German Cancer Research Center (DKFZ)
All rights reserved.

Use of this source code is governed by a 3-clause BSD license that can be
found in the LICENSE file.

============================================================================*/

#ifndef MITKMESHMAPPER2D_H_HEADER_INCLUDED
#define MITKMESHMAPPER2D_H_HEADER_INCLUDED

#include "MitkMapperExtExports.h"
#include "mitkCommon.h"
#include "mitkGLMapper.h"

namespace mitk
{
  class BaseRenderer;
  class Mesh;

  /**
   * \brief OpenGL-based mapper to display a mesh in a 2D window
   *
   * \todo implement for AbstractTransformGeometry.
   * \ingroup Mapper
   */
  class MITKMAPPEREXT_EXPORT MeshMapper2D : public GLMapper
  {
  public:
    mitkClassMacro(MeshMapper2D, GLMapper);

    itkFactorylessNewMacro(Self);

    itkCloneMacro(Self);

      /** @brief Get the Mesh to map */
      const mitk::Mesh *GetInput(void);

    void Paint(mitk::BaseRenderer *renderer) override;

  protected:
    MeshMapper2D();

    ~MeshMapper2D() override;
  };

} // namespace mitk

#endif /* MITKMESHMapper2D_H_HEADER_INCLUDED */
